/*
 * AlbumDT.cpp - Grupo 5 - Prog. Avanzada 2011
 *
 *  Javier Dominguez - 4.901.161-6
 *  Marcelo Parada - 1.977.094-9
 *  Rodrigo Ruiz - 4.481.611-2
 *  Maximiliano Silvera - 4.106.938-6
 */

#include "AlbumDT.h"

AlbumDT::AlbumDT()
{
	this->artistas = new ColConcrete<ArtistaDT*>();
}

AlbumDT::AlbumDT(string nombre, int anioEdicion)
{
	this->nombre = nombre;

	this->anioEdicion = anioEdicion;

	this->artistas = new ColConcrete<ArtistaDT*>();
}

int AlbumDT::tipoElementoDT()
{
	return Album::TIPO_ELEMENTO;
}

bool AlbumDT::same(ICollectible *icollectible)
{
	AlbumDT *albumDT = (AlbumDT*) icollectible;

	return this->nombre.compare(albumDT->nombre);
}

string AlbumDT::toString()
{
	stringstream out;
	out << "Nombre: " << this->getNombre() << endl;
	out << "Año edicion: " << this->getAnioEdicion() << endl;
	return out.str();
}

int AlbumDT::getAnioEdicion() const
{
    return anioEdicion;
}

string AlbumDT::getNombre() const
{
    return nombre;
}

void AlbumDT::setAnioEdicion(int anioEdicion)
{
    this->anioEdicion = anioEdicion;
}

void AlbumDT::setNombre(string nombre)
{
    this->nombre = nombre;
}

ColConcrete<ArtistaDT*> *AlbumDT::getArtistas() const
{
	return this->artistas;
}

void AlbumDT::setArtistas(ColConcrete<ArtistaDT*> *artistas)
{
	this->artistas = artistas;
}

AlbumDT::~AlbumDT()
{
	delete artistas;
}
